package datos.ArchivoXML;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import datos.ListaActores;
import datos.ListaDirectores;
import datos.ListaPelicula;
import datos.Pelicula;
import java.io.*;
import java.util.*;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

//import logica.DatoActores;
//import logica.DatoDirectores;

//import logica.DatoPelis;
//import org.jdom.*;
//import org.jdom.input.*;
//import org.jdom.output.*;

/**
 *
 * @author ricardocasanova
 */
public class CargaTodoPelicula
{
//    private static String nombreArchivo = "C://Users//Cristian//Documents//NetBeansProjects//xml//src//datos//ArchivoXML//ArchivoXMLdePelicula.xml";
//
//    /**
//     *
//     * Método public static void leerArchivoXML(ListaUsuarios listaDeUsuarios): Este método
//     * permite leer un archivo XML que contiene los datos de los usuarios a través de jdom
//     */
//    public static void leerArchivoXML(ListaPelicula listaDePelis)
//    {
//        try
//        {
//            SAXBuilder builder = new SAXBuilder();
//
//            /* Se crea un documento nuevo con el nombre del archivo */
//            try
//            {
//                Document doc = builder.build(nombreArchivo);
//
////
//            /* Se obtiene la raíz del archivo (la etiqueta inicial) */
//            Element raiz = doc.getRootElement();
//
//            /* Se puede obtener el atributo de la raíz (de la etiqueta) */
//            //System.out.println(raiz.getAttributeValue("tipo"));
//
//            /* Se obtienen todos los hijos cuya etiqueta esa "usuario"  */
//            /* y se asignan esos hijos a un List                        */
//            List ListaPeliculas = raiz.getChildren("Pelicula");
//
//            System.out.println("Formada por:" + ListaPeliculas.size() + " peliculas");
//            System.out.println("------------------");
//
//            /* Se genera un iterador para recorrer el List que se generó */
//            Iterator i = ListaPeliculas.iterator();
//
//            /* Se recorre el List */
//            while (i.hasNext())
//            {
//                /* Se obtiene cada uno y se asigna a un objeto de tipo Element */
//                Element e = (Element) i.next();
//
//                /* Se obtiene el nombre, apellido y cargo de cada una de las etiquetas  */
//                /* hijas de usuario, es decir, nombre, apellido y cargo                 */
//                Element id = e.getChild("id");
//                Element nombreorg = e.getChild("nombreorg");
//                Element nombre = e.getChild("nombre");
//                Element guionista = e.getChild("guionista");
//                Element produccion = e.getChild("produccion");
//                Element genero = e.getChild("genero");
//                Element duracion = e.getChild("duracion");
//                Element lanzamiento = e.getChild("lanzamiento");
//                Element sinopsis = e.getChild("sinopsis");
//                Element idioma = e.getChild("idioma");
//                Element subtitulo = e.getChild("subtitulo");
//
//
//
//                /* Se crea un nodo nuevo con la información y se agrega a la lista de usuarios */
//                int idaux = Integer.parseInt(id.getText());
//                int duracionaux = Integer.parseInt(duracion.getText());
//                int lanzamientoaux = Integer.parseInt(lanzamiento.getText());
//
//                //ListaDirectores listaD = new ListaDirectores();
//                //if (listaD.BuscarIDDirectores(idaux) == true){
//
//                ListaDirectores dir =new ListaDirectores();
//                ListaActores act=new ListaActores();
//
//                dir = DatoPelis.getListaDeDirectores();
//                act = DatoPelis.getListaDeActores();
//
//                Pelicula elNodo = new Pelicula(idaux,nombreorg.getText(),nombre.getText(),
//                        guionista.getText(),  produccion.getText(), genero.getText(), duracionaux,
//                        lanzamientoaux, sinopsis.getText(), idioma.getText(), subtitulo.getText(),
//                        act, dir);
//
//                listaDePelis.agregarPelicula(elNodo);
//
//            }
//
//        }
//            catch(JDOMParseException e)
//            {
//                System.out.println("Archivo vacio");
//                e.printStackTrace();
//            }
//        }
//        catch (Exception e)
//        {
//            e.printStackTrace();
//        }
//    }
//
//    /**
//     *
//     * Método public static void guardarArchivoXML(ListaUsuarios listaDeUsuarios): Este método
//     * permite guardar la lista de usuarios en un archivo XML. El procesamiento se hace con jdom
//     */
//    public static void guardarArchivoXML(ListaPelicula listaDePelis)
//    {
//        Pelicula nodoAuxiliar;
//
//        /* Se crea una raiz de la estructura */
//        Element root = new Element("Peliculas");
//
//        /* Es posible agregar atributos a la estructura inicial */
//        //root.setAttribute("tipo","Lista de Peliculas");
//
//        Iterator iterador = listaDePelis.getIterator();
//
//
//        while (iterador.hasNext())
//        {
//            /* Se crea la etiqueta "usuario" */
//            Element pelis = new Element("Pelicula");
//
//            nodoAuxiliar = (Pelicula) iterador.next();
//
//            /* Se crean las etiquetas nombre, apellido y cargo */
//            Element id = new Element("id");
//            Element nombreorg = new Element("nombreorg");
//            Element nombre = new Element("nombre");
//            Element guio = new Element("guionista");
//            Element prod = new Element("produccion");
//            Element gen = new Element("genero");
//            Element dur = new Element("duracion");
//            Element lanz = new Element("lanzamiento");
//            Element sinop = new Element("sinopsis");
//            Element idioma = new Element("idioma");
//            Element sub = new Element(" subtitulo");
//
//
//
//            /* Se inicializa cada etiqueta con sus valores de la lista */
//            Integer numeroAux = nodoAuxiliar.getID();
//            id.setText(numeroAux.toString());
//            nombreorg.setText(nodoAuxiliar.getNombreOrg());
//            nombre.setText(nodoAuxiliar.getNombreEsp());
//            guio.setText(nodoAuxiliar.getGuionista());
//            prod.setText(nodoAuxiliar.getProductora());
//            gen.setText(nodoAuxiliar.getGenero());
//            Integer numeroAux2 = nodoAuxiliar.getDuracionMin();
//            dur.setText(numeroAux2.toString());
//            Integer numeroAux3 = nodoAuxiliar.getAñoLanz();
//            lanz.setText(numeroAux3.toString());
//            sinop.setText(nodoAuxiliar.getSinopsis());
//            idioma.setText(nodoAuxiliar.getIdioma());
//            sub.setText(nodoAuxiliar.getSubtitulo());
//
//
//            /* Se añaden las etiquetas a la etiqueta principal (usuario)    */
//            /* estableciendo que un usuario tiene nombre, apellido y cargo  */
//            pelis.addContent(id);
//            pelis.addContent(nombreorg);
//            pelis.addContent(nombre);
//            pelis.addContent(guio);
//            pelis.addContent(prod);
//            pelis.addContent(gen);
//            pelis.addContent(dur);
//            pelis.addContent(lanz);
//            pelis.addContent(sinop);
//            pelis.addContent(idioma);
//            pelis.addContent(sub);
//
//
//            /* Se añade el nuevo usuario a la estructura XML */
//            root.addContent(pelis);
//        }
//
//        /* Se crea un documento nuevo */
//        Document doc = new Document(root);
//
//        try
//        {
//            /* Se genera un flujo de salida de datos XML */
//            XMLOutputter out = new XMLOutputter();
//
//            /* Se asocia el flujo de salida con el archivo donde se guardaran los datos */
//            FileOutputStream file = new FileOutputStream(nombreArchivo);
//
//            /* Se manda el documento generado hacia el archivo XML */
//            out.output(doc,file);
//
//            /* Se limpia el buffer ocupado por el objeto file y se manda a cerrar el archivo */
//            file.flush();
//            file.close();
//
//            /* En este caso se manda a imprimir el archivo por la consola   */
//            /* ESTE PROCESO NO ES OBLIGATORIO PARA PROCESAR EL XML          */
//            out.output(doc,System.out);
//        }
//        catch(Exception e)
//        {
//            e.printStackTrace();
//        }
//    }
}
